package fr.musique.servlet;

import java.util.LinkedList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import fr.musique.bean.Musique;
import fr.musique.service.AlbumService;
import fr.musique.service.MusiqueService;

@Controller
public class RechercherMusiqueServlet extends MultiActionController {

	@Autowired
	protected MusiqueService musiqueR;

	@Autowired
	protected AlbumService album;

	// Paramétrage et envoie du formulaire CreerMusique.jsp
	@RequestMapping("/RechercheMusique/rechercheMusique.htm")
	public ModelAndView creerMusique(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		// Redirection
		request.setAttribute("page", "RechercheMusique");

		return new ModelAndView("Accueil");
	}

	@RequestMapping("/RechercheMusique/resultat.htm")
	public ModelAndView add(HttpServletRequest request,
			HttpServletResponse response, Musique musique) throws Exception {

		// On vérifie que les champs existent
		if (musique.getTitre() != null) {

			// On vérifie que les champs sont non vides
			if (!musique.getTitre().isEmpty()) {

				// Sauvegarde en base

				LinkedList<Musique> musiqueRecherchee = new LinkedList<Musique>();
				for (Musique mus : musiqueR.getMusique(musique.getTitre())) {
					musiqueRecherchee.add(mus);
					System.out.println("TITRE DE LA MUSIQUE RECHERCHEE "
							+ mus.getTitre() + mus.getMaisonEdition());
				}
				request.setAttribute("recherche", musiqueRecherchee);

				// Mise en session
				HttpSession session = request.getSession(false);

				// Redirection - Traitement OK
				request.setAttribute("page", "MusiqueRecherchee");
			} else {
				// Redirection - Traitement Fail
				request.setAttribute("page", "MusiqueRecherchee");
				request.setAttribute("error_recherche_musique",
						"Veuillez remplir le champs titre");
			}
		} else {
			// Redirection - Traitement Fail
			request.setAttribute("page", "MusiqueRecherchee");
			request.setAttribute("error_recherche_musique",
					"Veuillez remplir le champs titre");
		}

		return new ModelAndView("Accueil");
	}
}
